7dd0e850b3a7557b4146df94725d5a4a25405470,src/main/java/org/cojen/tupl/_UndoLog.java,_UndoLog,persistReady,#,149

Before Change


     * commit lock.
     */
    private void persistReady() throws IOException {
        if (mNode != null) {
            return;
        }

        _Node node;
        byte[] buffer = mBuffer;
        if (buffer == null) {
            mNode = node = allocUnevictableNode(0);
            // Set pointer to top entry (none at the moment).
            node.undoTop(pageSize(node.mPage));
            node.releaseExclusive();
        } else {
            mNode = node = allocUnevictableNode(0);
            int pos = mBufferPos;
            int size = buffer.length - pos;
            long page = node.mPage;
            int newPos = pageSize(page) - size;
            p_copyFromArray(buffer, pos, page, newPos, size);
            // Set pointer to top entry.
            node.undoTop(newPos);
            mBuffer = null;
            mBufferPos = 0;
            node.releaseExclusive();
        }
    }

After Change


            mNode = node = allocUnevictableNode(0);

            byte[] buffer = mBuffer;
            if (buffer == null) {
                // Set pointer to top entry (none at the moment).
                mNodeTopPos = pageSize(node.mPage);
            } else {
                int pos = mBufferPos;
                int size = buffer.length - pos;
                long page = node.mPage;
                int newPos = pageSize(page) - size;
                p_copyFromArray(buffer, pos, page, newPos, size);
                // Set pointer to top entry.
                mNodeTopPos = newPos;
                mBuffer = null;
                mBufferPos = 0;
            }
        }

        node.undoTop(mNodeTopPos);
        node.releaseExclusive();
    }

    private int pageSize(long page) {